由於 Web 的應用已經普級到許多層面,有時候我們想要透過 Web 瞭解系統(在此指網頁應用程式)運作狀態,比如線上人數、交易量、API 內部資訊⋯⋯等項目,這些已經超過作業系統的監控範圍。
此時有關 Web 的資訊,我們可以使用 Webhook 取得網頁資訊,通常的應用是取得 API 資料。
在此我們使用一個簡單的 PHP 程式來模擬 API 的回應,再透過 Zabbix 取得這些項目。
這個練習在 server62 實做。
安裝 Apache 與 PHP 相關套件。
root# dnf install -y httpd php-fpm php-json && systemctl enable --now httpd
root# firewall-cmd --permanent --add-service=http
root# firewall-cmd --reload
編寫一個測試用的 PHP 程式,每次存取是都會輸出一筆隨機的 random 數值。
root# vi /var/www/html/data.php
<?php
header('Content-Type: application/json');
$users = rand(0, 1000);
$system_loading = rand(0, 100);
$datetime = date('Y-m-d H:i:s');
$data = array(
"datetime" => $datetime,
"users" => $users,
"system_loading" => $system_loading
);
echo json_encode($data);
?>
這個練習在 Zabbix Proxy
由於這個網頁最終會由 Proxy 進行整合,所以我們要在 Zabbix Proxy 中測試可以取得相關資料。
root# curl http://192.168.2.62/data.php